The present invention relates to the field of digital cameras, and more particularly relates to a platform-independent image processing architecture.
Digital image devices, such as but not limited to digital cameras, are an increasingly popular means for capturing images (in other words, for taking pictures) and for processing the resulting image data.
In digital cameras, images are represented by data and stored either in the camera""s memory or an external memory device from which they can be accessed by a user. A significant advantage to digital cameras is that users then have the capability to manipulate the image data in a number of ways. Users are able to operate on and modify the images, transfer them to other devices, incorporate them into documents, display them in a variety of formats, and the like. Thus, in comparison to conventional cameras, digital cameras introduce a variety of capabilities and enhancements.
The digital camera incorporates a central processing unit, memory, and many other features of a computer system. Accordingly, the digital camera is capable of concurrently running multiple software routines and subsystems to control and coordinate the various processes of the camera. One subsystem of particular interest is the image processing subsystem that is used for analyzing and manipulating captured image data in a variety of ways, including linearization, defect correction, white balance, interpolation, color correction, image sharpening, and color space conversion. In addition, the subsystem typically coordinates the functioning and communication of the various image processing stages and handles the data flow between the various stages.
A problem exists in that there are many prior art makes and models of digital cameras incorporating different hardware components and software configurations (that is, xe2x80x9cplatformsxe2x80x9d) for image processing. One make of digital camera may utilize a software mode for image processing, another may implement a hardware mode, and others may implement a mode utilizing various degrees of hardware and software combinations. Typically, this problem is addressed in the prior art by employing an operating system written specifically for the image processing mode used by the particular digital camera platform.
However, this prior solution is problematic because an operating system designed for one digital camera platform is generally too specialized to function on another platform. Even in those cases where the image processing mode for one camera make/model shares a common aspect with another make/model, it is often not possible to utilize a common operating system because of their specialized natures.
Consequently, in the prior art it is necessary for manufacturers of digital cameras to, for example, develop, purchase or license more than one version of a digital camera operating system, e.g., one version for each type of digital camera platform that the manufacturer offers. As the manufacturer develops additional makes and models employing various image processing modes, it is likely that different operating systems will also be needed. The need to integrate the development of the operating system with the development of the image processing mode introduces difficulties that could extend the lead time for introduction of a new product. For a manufacturer wishing to offer a number of different models of digital cameras, this can result in substantial effort and expense.
Similarly, the expense to a vendor of operating systems is also increased due to the need to support multiple digital camera platforms. In the prior art, different versions of operating systems increase development and manufacturing costs. The number of programmers needed to develop and support different operating systems is clearly a function of the number of operating systems that need to be provided. Increased costs are also associated with the support of multiple versions; for example, upgrades must be prepared for each version, and separate users manuals must also be written and published.
Accordingly, it is desirable to provide an operating system and/or method that can be utilized with the image processing mode used by any digital camera platform. It is also desirable that the operating system and/or method be flexible enough to be adapted to foreseeable digital camera platforms. The present invention provides a novel solution to the above needs.
The present invention provides an operating system that can be utilized with the image processing mode on any digital camera platform. The present invention is also flexible enough to be adapted to foreseeable digital camera platforms.
The present invention is a system and a method for processing image data in a digital image device such as a digital camera. The present invention includes a bus, a central processing unit coupled to the bus, an image processing subsystem coupled to the central processing unit for processing the image data using a particular processing mode, a memory unit coupled to the bus, and a data storage element for storing the image data after image processing. The memory unit has stored therein an operating system for managing the image processing subsystem, and the memory unit also has a data structure for managing the image data for the image processing subsystem during image processing. The data structure provides an interface between the operating system and the image processing subsystem, such that the operating system is independent of the processing mode used by the image processing subsystem.
In the present embodiment, the present invention also includes a spooler element for transferring the image data into the data structure, a data line reader element for reading the image data from the spooler element, and a data line writer element for writing the image data to the data storage element. The data line writer element provides an interface between the image processing subsystem and the data storage element that is independent of the processing mode used by the image processing subsystem.
In one embodiment, the processing mode used by the image processing subsystem includes a plurality of image processing modules and a JPEG (Joint Photographic Experts Group) software element. In another embodiment, the processing mode used by the image processing subsystem includes a digital signal processor and a JPEG hardware element. In yet another embodiment, the processing mode used by the image processing subsystem includes an image processing hardware system.
In the present embodiment, the present invention implements a method for processing image data in a digital image device that includes the following steps: a) creating a data structure corresponding to the image processing mode used by the image processing subsystem; b) initializing the spooler element; c) initializing the data line reader element; d) initializing the data line writer element; e) initializing the image processing subsystem and the data structure; f) forwarding the image data to the data structure using the spooler element; g) processing the image data using the processing mode used by the image processing subsystem; and h) writing the image data to the data storage element.
The present invention thus provides a flexible architecture for image processing within a digital image device (e.g., digital camera). The present invention permits the use of different modes of image processing while maintaining the same operating system, application program and application program interface. That is, the image processing mode used in a particular digital camera platform is invisible to the operating system and to the application program. The present invention accomplishes this by defining data structures that are flexible enough that different imaging processing subsystems can be implemented without affecting the software/hardware architecture that surrounds the subsystem. The data structures provide a well-defined interface for entering and exiting the image processing subsystem without changing or perturbing the upstream and downstream elements of the digital camera.
These and other objects and advantages of the present invention will become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.